1. Field
Embodiments of the present invention relate generally to computer systems and, more specifically, to system firmware and virtualization.
2. Description
Historically, computer systems, including personal computers (PCs), have used many different devices for storage of data. Each storage device provides certain capabilities and exhibits characteristics such as connection interface, access speed, capacity, and others. For example, storage devices include floppy disk drives, hard disk drives, solid state disk drives, CDROM drives, Universal Serial Bus (USB) “thumb” drives, and so on. New storage devices are continually being developed. To implement access to each new storage device, the operating system (OS) must evolve as well, typically by providing device driver software. The device driver software allows an application program, communicating through the OS, to read data from and write data to the storage device. As the number and types of storage devices proliferate, the burden on OS development becomes substantial. Further, access via the device driver to a storage device may be insecure, thereby allowing malicious users to read and/or modify input/output (I/O) traffic.